# -*- coding=utf-8
from qcloud_cos import CosConfig
from qcloud_cos import CosS3Client
import sys
import logging

from app.config import (
    COS_SECRET_ID,
    COS_SECRET_KEY, COS_BUCKET
)

# 正常情况日志级别使用 INFO，需要定位时可以修改为 DEBUG，此时 SDK 会打印和服务端的通信信息
logging.basicConfig(level=logging.INFO, stream=sys.stdout)

# 1. 设置用户属性, 包括 secret_id, secret_key, region等。Appid 已在CosConfig中移除，请在参数 Bucket 中带上 Appid。Bucket 由 BucketName-Appid 组成
# 用户的 SecretId，建议使用子账号密钥，授权遵循最小权限指引，降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140
secret_id = COS_SECRET_ID
# 用户的 SecretKey，建议使用子账号密钥，授权遵循最小权限指引，降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140
secret_key = COS_SECRET_KEY
bucket = COS_BUCKET
region = None  # 通过自定义域名初始化不需要配置 region
token = None  # 如果使用永久密钥不需要填入 token，如果使用临时密钥需要填入，临时密钥生成和使用指引参见 https://cloud.tencent.com/document/product/436/14048
scheme = 'https'  # 指定使用 http/https 协议来访问 COS，默认为 https，可不填

domain = 'cdn.imrightchen.live'  # 用户自定义 CDN 域名，需要开通 CDN 自定义域名加速，参见 https://cloud.tencent.com/document/product/436/18670
config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token, Domain=domain, Scheme=scheme)
client = CosS3Client(config)
dir_name = 'xibie/statusCondition/'


# 文件流简单上传（不支持超过5G的文件）
# 强烈建议您以二进制模式(binary mode)打开文件,否则可能会导致错误

def upload_file(file_name, file):
    key = dir_name + file_name
    with open(file, 'rb') as fp:
        _response = client.put_object(
            Bucket=bucket,
            Body=fp,
            Key=key,
            StorageClass='STANDARD',
            EnableMD5=False
        )
    print(_response['ETag'])
